﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/SharedGenomics.Domain" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/SharedGenomics.Domain" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:complexType name="Map">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:long" />
      <xs:element minOccurs="0" name="Chromosome" type="xs:long" />
      <xs:element minOccurs="0" name="BasePosition" type="xs:long" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Map" nillable="true" type="tns:Map" />
  <xs:complexType name="ArrayOfEntityInfo">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="EntityInfo" nillable="true" type="tns:EntityInfo" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfEntityInfo" nillable="true" type="tns:ArrayOfEntityInfo" />
  <xs:complexType name="EntityInfo">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="EntityInfo" nillable="true" type="tns:EntityInfo" />
  <xs:complexType name="FileSchema">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="GroupId" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="FileSchemaColumns" nillable="true" type="tns:ArrayOfFileSchemaColumn" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="FileSchema" nillable="true" type="tns:FileSchema" />
  <xs:complexType name="ArrayOfFileSchemaColumn">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FileSchemaColumn" nillable="true" type="tns:FileSchemaColumn" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFileSchemaColumn" nillable="true" type="tns:ArrayOfFileSchemaColumn" />
  <xs:complexType name="FileSchemaColumn">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="SchemaId" type="xs:int" />
      <xs:element minOccurs="0" name="Idx" type="xs:short" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Label" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="CategoryType" type="xs:short" />
      <xs:element minOccurs="0" name="FileSchemaColumnValues" nillable="true" type="tns:ArrayOfFileSchemaColumnValue">
        <xs:annotation>
          <xs:appinfo>
            <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="FileSchemaColumn" nillable="true" type="tns:FileSchemaColumn" />
  <xs:complexType name="ArrayOfFileSchemaColumnValue">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="FileSchemaColumnValue" nillable="true" type="tns:FileSchemaColumnValue" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfFileSchemaColumnValue" nillable="true" type="tns:ArrayOfFileSchemaColumnValue" />
  <xs:complexType name="FileSchemaColumnValue">
    <xs:sequence>
      <xs:element minOccurs="0" name="ColumnId" type="xs:int" />
      <xs:element minOccurs="0" name="Value" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Label" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="IsMissing" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="FileSchemaColumnValue" nillable="true" type="tns:FileSchemaColumnValue" />
  <xs:complexType name="IdFileSchemaColumn">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FileSchemaColumn">
        <xs:sequence />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="IdFileSchemaColumn" nillable="true" type="tns:IdFileSchemaColumn" />
  <xs:complexType name="OrdinalFileSchemaColumn">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:NominalFileSchemaColumn">
        <xs:sequence />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="OrdinalFileSchemaColumn" nillable="true" type="tns:OrdinalFileSchemaColumn" />
  <xs:complexType name="NominalFileSchemaColumn">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FileSchemaColumn">
        <xs:sequence />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="NominalFileSchemaColumn" nillable="true" type="tns:NominalFileSchemaColumn" />
  <xs:complexType name="GenderFileSchemaColumn">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:NominalFileSchemaColumn">
        <xs:sequence>
          <xs:element minOccurs="0" name="FemaleValue" nillable="true" type="xs:string" />
          <xs:element minOccurs="0" name="MaleValue" nillable="true" type="xs:string" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="GenderFileSchemaColumn" nillable="true" type="tns:GenderFileSchemaColumn" />
  <xs:complexType name="ScaleFileSchemaColumn">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:FileSchemaColumn">
        <xs:sequence />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="ScaleFileSchemaColumn" nillable="true" type="tns:ScaleFileSchemaColumn" />
  <xs:complexType name="FileSet">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="UserId" type="xs:int" />
      <xs:element minOccurs="0" name="FileSchemaId" type="xs:int" />
      <xs:element minOccurs="0" name="IsAvailable" type="xs:boolean" />
      <xs:element minOccurs="0" name="FileSchema" nillable="true" type="tns:FileSchema" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="FileSet" nillable="true" type="tns:FileSet" />
  <xs:complexType name="FileSetUploadInfo">
    <xs:sequence>
      <xs:element minOccurs="0" name="RemoteGenotypeFileUri" nillable="true" type="xs:anyURI" />
      <xs:element minOccurs="0" name="RemotePhenotypeFileUri" nillable="true" type="xs:anyURI" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="FileSetUploadInfo" nillable="true" type="tns:FileSetUploadInfo" />
  <xs:complexType name="FilterSet">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="IndividualMissingnessRate" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="SnpGenotypingRate" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="MAF" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="HardyWeinbergP" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="Phenotype" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="CategoryFilterSet" nillable="true" type="tns:ArrayOfCategoryFilter" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="FilterSet" nillable="true" type="tns:FilterSet" />
  <xs:complexType name="ArrayOfCategoryFilter">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="CategoryFilter" nillable="true" type="tns:CategoryFilter" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfCategoryFilter" nillable="true" type="tns:ArrayOfCategoryFilter" />
  <xs:complexType name="CategoryFilter">
    <xs:sequence>
      <xs:element minOccurs="0" name="FilterSetId" type="xs:int" />
      <xs:element minOccurs="0" name="Category" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="FilterValues" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="CategoryFilter" nillable="true" type="tns:CategoryFilter" />
  <xs:complexType name="ArrayOfDataSetSummary">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="DataSetSummary" nillable="true" type="tns:DataSetSummary" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfDataSetSummary" nillable="true" type="tns:ArrayOfDataSetSummary" />
  <xs:complexType name="DataSetSummary">
    <xs:sequence>
      <xs:element minOccurs="0" name="CategoryFilters" nillable="true" type="tns:ArrayOfCategoryFilterSummary" />
      <xs:element minOccurs="0" name="CreatedDate" type="xs:dateTime" />
      <xs:element minOccurs="0" name="HardyWeinbergP" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="IndividualCount" type="xs:int" />
      <xs:element minOccurs="0" name="IndividualMissingnessRate" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="IsBinaryPhenotype" type="xs:boolean" />
      <xs:element minOccurs="0" name="MAF" nillable="true" type="xs:decimal" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="PhenotypeColumnLabel" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="PhenotypeColumnName" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="SnpCount" type="xs:int" />
      <xs:element minOccurs="0" name="SnpGenotypingRate" nillable="true" type="xs:decimal" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DataSetSummary" nillable="true" type="tns:DataSetSummary" />
  <xs:complexType name="ArrayOfCategoryFilterSummary">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="CategoryFilterSummary" nillable="true" type="tns:CategoryFilterSummary" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfCategoryFilterSummary" nillable="true" type="tns:ArrayOfCategoryFilterSummary" />
  <xs:complexType name="CategoryFilterSummary">
    <xs:sequence>
      <xs:element minOccurs="0" name="FilterColumnLabel" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="FilterColumnName" nillable="true" type="xs:string" />
      <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="FilterValues" nillable="true" type="q1:ArrayOfstring" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="CategoryFilterSummary" nillable="true" type="tns:CategoryFilterSummary" />
  <xs:complexType name="DataSet">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="FileSetId" type="xs:int" />
      <xs:element minOccurs="0" name="FilterSetId" type="xs:int" />
      <xs:element minOccurs="0" name="CreatedDate" type="xs:dateTime" />
      <xs:element minOccurs="0" name="Jobs" nillable="true" type="tns:ArrayOfJob">
        <xs:annotation>
          <xs:appinfo>
            <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="FileSet" nillable="true" type="tns:FileSet" />
      <xs:element minOccurs="0" name="FilterSet" nillable="true" type="tns:FilterSet" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DataSet" nillable="true" type="tns:DataSet" />
  <xs:complexType name="ArrayOfJob">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Job" nillable="true" type="tns:Job" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfJob" nillable="true" type="tns:ArrayOfJob" />
  <xs:complexType name="Job">
    <xs:sequence>
      <xs:element minOccurs="0" name="Id" type="xs:int" />
      <xs:element minOccurs="0" name="JobType" type="tns:JobType" />
      <xs:element minOccurs="0" name="ClusterId" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="DataSetId" type="xs:int" />
      <xs:element minOccurs="0" name="DataSet" nillable="true" type="tns:DataSet" />
      <xs:element minOccurs="0" name="ParentJobId" nillable="true" type="xs:int" />
      <xs:element minOccurs="0" name="Permutations" nillable="true" type="xs:short" />
      <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="SubmittedDate" type="xs:dateTime" />
      <xs:element minOccurs="0" name="ParentJob" nillable="true" type="tns:Job">
        <xs:annotation>
          <xs:appinfo>
            <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element minOccurs="0" name="Status" type="tns:JobStatus" />
      <xs:element minOccurs="0" name="AnalysisVariable" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Job" nillable="true" type="tns:Job" />
  <xs:simpleType name="JobType">
    <xs:annotation>
      <xs:appinfo>
        <ActualType Name="short" Namespace="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
      </xs:appinfo>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="PassocBT">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PassocQT">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">2</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PModel">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">3</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PepiBT">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">4</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FastPepiBT">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">5</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="PepiQT">
        <xs:annotation>
          <xs:appinfo>
            <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">6</EnumerationValue>
          </xs:appinfo>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="JobType" nillable="true" type="tns:JobType" />
  <xs:simpleType name="JobStatus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NotSubmitted" />
      <xs:enumeration value="Queued" />
      <xs:enumeration value="Running" />
      <xs:enumeration value="Finished" />
      <xs:enumeration value="Failed" />
      <xs:enumeration value="Cancelled" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="JobStatus" nillable="true" type="tns:JobStatus" />
  <xs:simpleType name="ModelOptionFlags">
    <xs:annotation>
      <xs:appinfo>
        <ActualType Name="unsignedByte" Namespace="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
      </xs:appinfo>
    </xs:annotation>
    <xs:list>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="None">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">0</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Alleleic">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">1</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Dominant">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">2</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Trend">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">4</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Recessive">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">8</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Genotypic">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">16</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="All">
            <xs:annotation>
              <xs:appinfo>
                <EnumerationValue xmlns="http://schemas.microsoft.com/2003/10/Serialization/">31</EnumerationValue>
              </xs:appinfo>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:list>
  </xs:simpleType>
  <xs:element name="ModelOptionFlags" nillable="true" type="tns:ModelOptionFlags" />
</xs:schema>